//rodowisko R dla pocztkujcych

//Rozdzia 4. - Gromadzenie i porzdkowanie informacji
//John M. Quick

//Importowanie danych zewntrznych

> #zdefiniuj katalog roboczy rodowiska R
> #zastp przykadow ciek tak, ktra jest odpowiednia dla Ciebie
> setwd("C:/Users/RUser/Strateg/")

> #skopiuj plik zasobyHanzhong.csv do swojego katalogu roboczego

> #uyj polecenia read.csv(file), by wczyta zewntrzny plik z danymi do rodowiska R
> #plik zawiera informacje o zasobach krlestwa Shu znajdujcych si w miecie Hanzhong w Chinach
> read.csv("zasobyHanzhong.csv")


//Tworzenie i uywanie zmiennychS

> #wczytaj dane z pliku zasobyHanzhong.csv do zmiennej o nazwie hanzhongResources
> hanzhongResources <- read.csv("zasobyHanzhong.csv")

> #wywietl zawarto zmiennej hanzhongResources
> #zasoby krlestwa Shu w miecie Hanzhong w Chinach
> hanzhongResources
    Zoto  Zapasy onierze StanWyposaenia
1 1000000 1000000    100000               1

> #wczytaj dane z pliku onierzeWMiastach.csv do zmiennej o nazwie soldiersByCity
> soldiersByCity <- read.csv("onierzeWMiastach.csv")

> #wywietl zawarto zmiennej soldiersByCity
> soldiersByCity
   Krlestwo     Miasto onierze
1        Shu   Hanzhong    100000
2        Shu    Chengdu     25000
3        Shu    Yinping     15000
4        Shu     Badong     15000
5        Shu       Baxi     10000
6        Shu   Guanghan     10000
7        Shu         Ba      5000
8        Shu      Zhuti      5000
9        Shu     Jianti      5000
10       Shu     Yunnan      5000
11       Shu  Yongchang      5000
12       Wei    Luoyang    200000
13       Wei     Longxi     50000
14       Wei    Nanyang     25000
15       Wei      Runan     20000
16       Wei     Xiping     15000
17       Wei  Guangling     15000
18       Wei Changguang     15000
19       Wei  Changshan     15000
20       Wei         Ye     15000
21       Wei       Qiao     15000
22       Wei     Anding     10000

//Dostp do danych w zmiennych

> #wyodrbnij pojedyncz kolumn ze zbioru danych poprzez uycie notacji zmienna$kolumna
> #wywietl zawarto kolumny onierze ze zmiennej soldiersByCity
> soldiersByCity$onierze
 [1] 100000  25000  15000  15000  10000  10000
 [7]   5000   5000   5000   5000   5000 200000
[13]  50000  25000  20000  15000  15000  15000
[19]  15000  15000  15000  10000

> #wyodrbnij pojedyncz kolumn ze zbioru danych poprzez uycie funkcji attach(zmienna) i uproszczonej notacji
> #przycz zmienn soldiersByCity
> attach(soldiersByCity)
> #wywietl zawarto kolumny onierze ze zmiennej soldiersByCity
> onierze
 [1] 100000  25000  15000  15000  10000  10000
 [7]   5000   5000   5000   5000   5000 200000
[13]  50000  25000  20000  15000  15000  15000
[19]  15000  15000  15000  10000

> #wyodrbnij pojedynczy wiersz ze zbioru danych poprzez uycie notacji macierzowej zmienna[wiersz, kolumna]
> #wywietl zawarto dziesitego wiersza ze zmiennej soldiersByCity
> soldiersByCity[10,]
   Krlestwo Miasto onierze
10       Shu Yunnan      5000

> #wyodrbnij pojedynczy element ze zbioru danych poprzez uycie notacji macierzowej zmienna[wiersz, kolumna]
> #wywietl zawarto elementu [5, 3] ze zmiennej soldiersByCity
> soldiersByCity[5, 3]
[1] 10000

//Przetwarzanie danych ze zmiennych

> #jeli powd zniszczya 75% zasobw Shu w miecie Hanzhong, ile ich pozostanie?
> #pomn zmienn hanzhongResources przez warto 0,25, by wyznaczy pozostae 25% pierwotnych zasobw
> hanzhongResources * 0.25
   Zoto Zapasy onierze StanWyposaenia
1 250000 250000     25000            0.25

> #jeli powd zniszczya 75% zapasw w miecie Hanzhong, ile ich pozostanie?
> #pomn kolumn Zapasy przez warto 0,25, by wyznaczy pozostae 25% pierwotnych zasobw
> hanzhongResources$Zapasy * 0.25
[1] 250000

> #uyj funkcji mean(dane), aby obliczy redni liczb onierzy stacjonujcych w miecie krlestwa Shu
> #w miecie krlestwa Shu stacjonuje przecitnie tylu onierzy:
> mean(soldiersByCity$onierze)
[1] 27045.45

> #zapisz redni liczb onierzy przypadajcych na jedno miasto w zmiennej o nazwie meanSoldiersByCity
> meanSoldiersByCity <- mean(soldiersByCity$onierze)
> #wywietl zawarto zmiennej meanSoldiersByCity
> meanSoldiersByCity
[1] 27045.45

> #co si stanie, gdy sprbujemy wykona obliczenie numeryczne na danych nienumerycznych?
> #otrzymamy ostrzeenie, poniewa przetwarzanie tekstu w sposb numeryczny nie ma sensu
> soldiersByCity * 5
   Krlestwo Miasto onierze
1         NA     NA    500000
2         NA     NA    125000
3         NA     NA     75000
4         NA     NA     75000
5         NA     NA     50000
6         NA     NA     50000
7         NA     NA     25000
8         NA     NA     25000
9         NA     NA     25000
10        NA     NA     25000
11        NA     NA     25000
12        NA     NA   1000000
13        NA     NA    250000
14        NA     NA    125000
15        NA     NA    100000
16        NA     NA     75000
17        NA     NA     75000
18        NA     NA     75000
19        NA     NA     75000
20        NA     NA     75000
21        NA     NA     75000
22        NA     NA     50000
Warning messages:
1: In Ops.factor(left, right) : * not meaningful for factors
2: In Ops.factor(left, right) : * not meaningful for factors

> #oblicz ilo zasobw, ktre pozostayby, gdyby powd zniszczya poow kadego zasobu zapisanego w zmiennej hanzhongResources. 
> hanzhongResourcesAfterFlood <- hanzhongResources / 2
> #wywietl zawarto zmiennej hanzhongResourcesAfterFlood
> hanzhongResourcesAfterFlood
  Zoto Zapasy onierze StanWyposaenia
1 5e+05  5e+05     50000             0.5

> #jeli 5000 onierzy zostaoby przemieszczonych z Guanghan do Baxi, w jaki sposb zmieniyby si zasoby zapamitane w rodowisku R?
> #dodaj 5000 onierz do pola zmiennej soldiersByCity, ktre reprezentuje miasto Baxi
> baxiSoldiersAfterRelocation <- soldiersByCity[5,3] + 5000
> #wywietl zawarto zmiennej baxiSoldiersAfterRelocation
> baxiSoldiersAfterRelocation
[1] 15000
> #odejmij 5000 onierzy z pola zmiennej soldiersByCity, ktre odpowiadam miastu Guanghan
> guanghanSoldiersAfterRelocation <- soldiersByCity[6,3] - 5000
> #wywietl zawarto zmiennej guanghanSoldiersAfterRelocation
> guanghanSoldiersAfterRelocation
[1] 5000

> #uyj funkcji min(dane) i max(dane) oraz zmiennej soldiersByCity, aby obliczy najmniejsz i najwiksz liczb onierzy w miecie
> #jaka jest najmniejsza liczba onierzy w miastach krlestwa Shu lub Wei?
> minSoldiersByCity <- min(soldiersByCity[,3])
> #wywietl zawarto zmiennej minSoldiersByCity
> minSoldiersByCity
[1] 5000
> #jaka jest najwiksza liczba onierzy w miastach krlestwa Shu lub Wei?
> maxSoldiersByCity <- max(soldiersByCity[,3])
> #wywietl zawarto zmiennej maxSoldiersByCity
> maxSoldiersByCity
[1] 200000

> #uyj funkcji sum(dane) oraz zmiennej soldiersByCity, aby obliczy cakowit liczb onierzy armii Shu i Wei
> #jaka jest cakowita liczba onierzy armii Shu i Wei?
> totalSoldiers <- sum(soldiersByCity[,3])
> #wywietl zawarto zmiennej totalSoldiers
> totalSoldiers
[1] 595000

//Zarzdzanie obszarem roboczym

> #zapamitaj obszar roboczy rodowiska R w katalogu roboczym za pomoc funkcji save.image(file)
> save.image("rDlaPocztkujcych_R_04.RData")

> #zaaduj poprzednio zapamitany obszar roboczy uywajc w tym celu funkcji load(file)
> load("rBeginnersGuide_Ch_04.RData")

> #wywietl biec zawarto obszaru roboczego rodowiska R
> ls()

> #zakocz sesj R
> q()


//Gromadzenie i porzdkowanie nowych danych

> #wczytaj zawarto pliku battleHistory.csv do nowej zmiennej o nazwie battleHistory
> battleHistory <- read.csv("historiaBitew.csv")

> #jaka liczba onierzy krlestw Shu i Wei bya przecitnie zaangaowana w walki?
> meanSoldiersShu <- mean(battleHistory$onierzeShu)
> #wywietl zawarto zmiennej meanSoldiersShu
[1] 21035.83
> #on average, the Wei army engages how many soldiers in battle?
> meanSoldiersWei <- mean(battleHistory$onierzeWei)
> #wywietl zawarto zmiennej meanSoldiersWei
[1] 21937.5

> #zapisz zawarto swojego obszaru roboczego R w nowym pliku
> #pamitaj o dodaniu rozszerzenia .RData
> save.image("rDlaPocztkujcych_R_04_mjObszarRoboczy.RData")

> #zapisz zawarto swojej konsoli R poprzez skopiowanie i wklejenie treci do pliku teksowego